#!/usr/bin/python
# --coding:utf-8--

import re

# 1. ^（脱字号）：表示以...开始
text = "iflytek"
res = re.match('^i', text)  # 如果是在中括号中，那么代表的是取反操作
print(res.group())  # i


# 2. $：表示以...结束
text = "856492375@qq.com"
res = re.search('\w+@qq\.com$',text)
print(res.group())


# 3. |：匹配多个表达式或者字符串
text = "hello, nice to meet you"
res = re.search('hello', text)
print(res.group())


# 4. 贪婪模式和非贪婪模式
"""
贪婪模式：正则表达式会匹配尽量多的字符，默认是贪婪模式
非贪婪模式：正则表达式会尽量少的匹配字符
"""
text = "123456789"
res = re.match('\d+', text)  # 默认为贪婪模式
print(res.group())  # 123456789

text = "123456789"
res = re.match('\d+?', text)  # 非贪婪模式
print(res.group())  # 1

print('================================================')
# 5. group分组
content = 'Hello 1234567 World_This is a Regex Demo'
result = re.match('^Hello\s(\d+)\sWorld', content)
print(result)
print(result.group())
print(result.group(1))
print(result.span())


# 6、修饰符
content = '''Hello 1234567 World_This
is a Regex Demo
'''
result = re.match('^He.*?(\d+).*?Demo$', content, re.S)
print(result.group(1))
"""
常见的修饰符：
re.I：使匹配对大小写不敏感
re.L：做本地化识别（locale-aware）匹配
re.M：多行匹配，影响 ^ 和 $
re.S：使匹配包括换行在内的所有字符
re.U：根据 Unicode 字符集解析字符。这个标志影响 \w、\W、\b 和 \B
re.X：该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解
"""

# 7、转义字符
content = '(百度)www.baidu.com'
result = re.match('\(百度\)www\.baidu\.com', content)
print(result)


